package Model.dao;

import Model.Entidades.Clientes;
import Model.Entidades.Compra;
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.Query;

public class ClientesDAO {
    private EntityManager em;
    public ClientesDAO(EntityManager em){
        this.em = em;
    }
    
    public Clientes salvar(Clientes i) throws Exception{
        if(i.getId() == null)
            em.persist(i);
        else{
            if(!em.contains(i)){
                if(em.find(Clientes.class, i.getId()) == null){
                    throw new Exception("Erro ao atualizar dados, Cliente não existe.");
                }
            }
            i = em.merge(i);
        }
        return i;
    }
    public Clientes salvar(Integer id, String nome, String sexo, Integer idade) throws Exception{
        Clientes i = new Clientes();
        i.setId(id);
        i.setNome(nome);
        i.setSexo(sexo);
        i.setIdade(idade);
        
        if(i.getId() == null)
            em.persist(i);
        else{
            if(!em.contains(i)){
                if(em.find(Clientes.class, i.getId()) == null){
                    throw new Exception("Erro ao atualizar dados, Cliente não existe.");
                }
            }
            i = em.merge(i);
        }
        return i;
    }
    public Clientes buscaPorId(Integer id){
        return em.find(Clientes.class, id);
    }
     public Collection<Clientes> buscaTodosClientes(){
        Query query = em.createQuery("SELECT * FROM clientes");
        return (Collection<Clientes>) query.getResultList();
    }
    public void remover(Integer id){
            em.remove(id);
            
    }
}


